import { createStore, createLogger } from 'vuex'
// 本地持久化插件
import createPersistedState from 'vuex-persistedstate'

// 导入子模块
import user from './modules/user'
import cart from './modules/cart'
import category from './modules/category'

// 创建 vuex 仓库并导出
// vue3创建store实例，使用createStore()
export default createStore({
  // 数据
  state: {
  },

  // 修改数据 (同步)
  mutations: {
  },

  // 后台请求 (异步)
  actions: {
  },

  // 模块化
  modules: {
    user,
    cart,
    category
  },

  /**
   * vuex-persistedstate插件使用说明:
   * 1- 默认集成之后存储所有数据
   * 2- 可以通过配置指定存储的key 和 存储哪些数据 --> { key: 'rabbit-pc-131-01', paths: ['user', 'cart'] }
   */
  plugins: [
    createPersistedState({ key: 'rabbit-pc-131-01', paths: ['user', 'cart'] }),
    createLogger()
  ]
})
